package com.lyl.xxx.modules.system.account.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.lyl.xxx.modules.system.account.entity.SysUser;
import com.lyl.xxx.modules.web.account.model.dto.ModifyPwdDTO;
import com.lyl.xxx.modules.web.account.model.dto.UpdateUserDTO;
import com.lyl.xxx.modules.web.account.model.dto.UserDTO;
import com.lyl.xxx.modules.web.montior.model.vo.OnlineUserVO;
import com.lyl.xxx.modules.web.account.model.vo.UserVO;

/**
 * 用户信息表(SysUser)表服务接口
 *
 * @author Mr Luo
 * @since 2022-09-19 11:07:45
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 根据用户名获取用户信息
     *
     * @param username 用户名
     * @return sysUser
     */
    SysUser getByUsername(String username);

    /**
     * 分页查询
     * @param pageNo 当前记录数
     * @param pageSize 每页记录数
     * @param dto 请求参数
     * @return 分页列表
     */
    PageInfo<UserVO> list(Integer pageNo, Integer pageSize, UserDTO dto);

    /**
     * 获取在线用户
     * @param pageNo 当前纪录数
     * @param pageSize 每页纪录数
     * @return 分页列表
     */
    PageInfo<OnlineUserVO> getOnlineUserList(Integer pageNo, Integer pageSize);

    /**
     * 更新用户信息
     * @param dto 请求参数
     * @return true/false
     */
    boolean updateUser(UpdateUserDTO dto);

    /**
     * 修改密码
     * @param dto 请求参数
     * @return true/false
     */
    boolean modifyPwd(ModifyPwdDTO dto);
}

